/*
 * Copyright (c) 2020 hebeiyiliuba.com
 * All rights reserved.
 *
 */
package org.jeecg.modules.third.jg.report.freight.information.constant.enums;

import com.google.common.collect.Maps;
import org.apache.commons.lang3.StringUtils;

import java.util.Map;

/**
 *
 *
 * @author duanlikao
 * @created 2021/1/7
 */
public enum FileCodeEnum {

    FILE_CODE_TYPE_11("11", "车辆" ,"机动车行驶证主页"),    //	0..1 jpg或png	必填，机动车行驶证主页图片

    FILE_CODE_TYPE_13("13", "车辆" ,"机动车行驶证副页"),    //	0..1 jpg或png	选填，机动车行驶证副页图片需包含最近的检验记录
    FILE_CODE_TYPE_12("12", "车辆" ,"车辆道路运输证"),      // 	0..1	jpg或png	选填，道路运输证主页图片，或IC卡正面图片
    FILE_CODE_TYPE_14("14", "车辆" ,"船舶所有权证"),       //	0..1	jpg或png	选填，船舶所有权证
    FILE_CODE_TYPE_15("15", "车辆" ,"船舶营运证"),         //	0..1	jpg或png	选填，船舶营业运输证

    FILE_CODE_TYPE_21("21", "驾驶员" ,"机动车驾驶证主页"), //	1..1	jpg或png	必填，机动车驾驶证主页图片

    FILE_CODE_TYPE_24("24", "驾驶员" ,"机动车驾驶证副页"), //	0..1	jpg或png	选填，机动车驾驶证副页图片需包含最近的检验记录

    FILE_CODE_TYPE_22("22", "驾驶员" ,"驾驶员身份证人像面"), //	1..1	jpg或png	必填，驾驶员身份证人像面
    FILE_CODE_TYPE_23("23", "驾驶员" ,"驾驶员身份证国徽面"), //	1..1	jpg或png	必填，驾驶员身份证国徽面

    FILE_CODE_TYPE_25("25", "驾驶员" ,"船员适任证书"), //	0..1	jpg或png	选填，船员适任证书

    FILE_CODE_TYPE_31("31", "运单" ,"运输合同"), //	1..1	pdf或jpg或png	必填，网络货运经营企业与实际承运人运输合同

    FILE_CODE_TYPE_32("32", "运单" ,"装货凭证"), //	0..1	jpg或png	选填，装货的磅单图片
    FILE_CODE_TYPE_33("33", "运单" ,"卸货凭证"), //	0..1	jpg或png	选填，卸货的磅单图片或回单

    FILE_CODE_TYPE_34("34", "运单" ,"银行资金支付凭证"),//	1..1	jpg或png	必填，银行资金支付的纸质或电子凭证

    ;

    public final String code;
    public final String type;
    public final String msg;

    private static Map<String, FileCodeEnum> codeMap = Maps.newHashMap();

    FileCodeEnum(String code,String type, String msg  ) {
        this.code = code;
        this.msg = msg;
        this.type = type;
    }

    public static String getMsg(String code) {
        return codeMap.containsKey(code) ? codeMap.get(code).msg : StringUtils.EMPTY;
    }
    public static String getType(String code) {
        return codeMap.containsKey(code) ? codeMap.get(code).type : StringUtils.EMPTY;
    }

    public static boolean isValid(String code) {
        return codeMap.containsKey(code);
    }

    static {
        for (FileCodeEnum status : FileCodeEnum.values()) {
            codeMap.put(status.code, status);
        }
    }

    public static FileCodeEnum getFileCodeEnumByVal(String code) {
       return codeMap.get(code);
    }
}
